import { StateMachine } from "./StateMachine";

export interface IState {

    /**
     * 获取状态id
     */
    getId(): number;
    /**
     * 进入状态回调此方法
     * @param stateMachine 控制此状态的状态机
     * @param preState 进入此状态的前状态
     */
    onEnter(stateMachine: StateMachine, preState: IState): void;
    /**
     * 离开状态时回调此方法
     * @param nextState 离开此状态后的下一状态
     */
    onLeave(nextState: IState): void;
    /**
     * 每帧的update方法回调
     */
    onUpdate(dt: number): void;
}